// pages/blind_date/details.js
import { User } from '../../model/user';
import { UserAuth } from '../../model/user-auth';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    user_auth_id: 0,
    user_auth: null,
    userInfo: null,
    show: false,
    sub_loading: false,
    problem: '',
    user_privacy_List_id: '',
    answer: '',
    shareUrl: '',
    height: '',
    hidden: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      user_auth_id: options.id
    })
    wx.showLoading({
      title: '加载中',
    });
    this.getUserInfo();
  },
  /**
   * 获取用户信息
   */
  async getUserInfo () {
      const res = await User.getUserInfo();
      this.setData({
        userInfo: res,
      })
      this.getInfo();
  },
  /**
   * 获取信息详情
   */
  async getInfo() {
    const res = await UserAuth.getDataInfo(this.data.user_auth_id);
    this.setData({
      user_auth: res
    });
    this.setShareImg();
    this.getHeight();
    wx.hideLoading();
  },
  /**
   * 获取图片高度
   */
  getHeight() {
    const self = this;
    wx.getSystemInfo({
      success: function (res) {
        // 获取可使用窗口宽度
        let clientHeight = res.windowHeight;
        // 获取可使用窗口高度
        let clientWidth = res.windowWidth;
        // 算出比例
        let ratio = 750 / clientWidth;
        // 算出高度(单位rpx)
        let height = clientHeight * ratio;
        // 算出图片高度
        wx.getImageInfo({
          src: self.data.user_auth.imgs[0].img.url,
          success(result) {
              const img_width = result.width;
              ratio = 750 / img_width;
              const img_height = result.height;
              height = img_height * ratio;
              height = height+'rpx';
              self.setData({
                height: height,
                hidden: true
              })
          }
        })
      }
    });
  },
  openReport() {
    wx.navigateTo({
      url: 'report?user_auth_id='+this.data.user_auth_id,
    })
  },
  async onClickShow() {
    this.setData({
      sub_loading: true,
    })
    const res = await User.lookUserAuth({openid: this.data.user_auth.openid, userInfo: this.data.userInfo});
    if(res) {
      if(res.type == 1) {
        this.setData({
          sub_loading: false,
        })
        wx.showLoading({
          title: '加载中',
        });
        this.getInfo();
      } else {
        this.setData({
          user_privacy_List_id: res.id,
          problem: res.problem,
          show: true,
          sub_loading: false,
        })
      }
    } else {
      this.setData({
        sub_loading: false,
      })
    }
  },
  async questionAnswering() {
    wx.showLoading({
      title: '加载中',
    });
      if(!this.data.answer) {
        wx.showToast({
          title: '请输入答案!',
          icon: 'none',
          duration: 2000
        })
        return false;
      }
      const data = {
        id: this.data.user_privacy_List_id,
        answer: this.data.answer,
      }
      const res = await User.questionAnswering(data);
      if(res) {
        wx.showToast({
          title: '提交成功!',
          icon: 'none',
          duration: 2000
        })
      }
      this.setData({
        show: false,
      })
      wx.hideLoading();
  },
  onClickHide() {
    this.setData({ show: false });
  },
  /**
   * 点赞
   */
  async addZan() {
    wx.showLoading({
      title: '加载中',
    });
    const res = await UserAuth.addZan({user_auth_id: this.data.user_auth_id});
    if(res) {
      wx.showToast({
        title: '点赞成功',
        icon: 'none',
        duration: 2000
      })
      this.getInfo();
    }
  },
  /**
   * 喜欢
   */
  async addLike() {
    wx.showLoading({
      title: '加载中',
    });
    const res = await UserAuth.addLike({user_auth_id: this.data.user_auth_id});
    if(res) {
      wx.showToast({
        title: '操作成功',
        icon: 'none',
        duration: 2000
      })
      this.getInfo();
    }
  },
  /**
   * 拨打电话
   */
  openTel() {
    const self = this;
    wx.makePhoneCall({
      phoneNumber: self.data.user_auth.user.phone
    })
  },
  /**
   * 改变姓名
   */
  onChangeAnswer(event) {
    this.setData({
      answer: event.detail.value,
    })
  },
  /**
   * 分享
   */
  onShareAppMessage() {
    const self = this;
    return {
      title: '我觉得TA不错，可以认识一下',
      imageUrl: self.data.shareUrl,
    };
  },
  /**
   * 生成分享图片
   */
  setShareImg() {
    const self = this;
    wx.getImageInfo({
      src: self.data.user_auth.imgs[0].img.url,
      success(res) {
        const ctx = wx.createCanvasContext('shareCanvas')
        ctx.drawImage(res.path, 0, 0, 250, 200);

        // 名称
        ctx.setTextAlign('left') // 文字居中
        ctx.setFillStyle('#000000') // 文字颜色：黑色
        ctx.setFontSize(22) // 文字字号：22px
        ctx.fillText(self.data.user_auth.name, 20 ,150);

        // 身高
        ctx.setTextAlign('left') // 文字居中
        ctx.setFillStyle('#000000') // 文字颜色：黑色
        ctx.setFontSize(22) // 文字字号：22px
        ctx.fillText(self.data.user_auth.height+'cm', 20 ,180);

        // 学历
        let education = '';
        if(self.data.user_auth.education == 1) {
          education = '专科及以下';
        } else if(self.data.user_auth.education == 2) {
          education = '本科';
        } else if(self.data.user_auth.education == 3) {
          education = '硕士';
        } else if(self.data.user_auth.education == 4) {
          education = '博士(含博士后)';
        }
        ctx.setTextAlign('left') // 文字居中
        ctx.setFillStyle('#000000') // 文字颜色：黑色
        ctx.setFontSize(22) // 文字字号：22px
        ctx.fillText('| '+education, 95 ,180);
        ctx.stroke();
        ctx.draw();
        wx.canvasToTempFilePath({
          canvasId: 'shareCanvas',
          success(result) {
            self.setData({
              shareUrl:result.tempFilePath
            });
          }
        })
      }
    })
  },

})